package org.batallademusica.dao;

import java.util.logging.Logger;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.batallademusica.dominio.Cancion;

import com.movired.utiles.llavesPrimarias.LlavePrimaria;

/**
 * Caso de prueba para el papel que puede jugar el patron DAO en un entonor JPA
 * Solo voy a implementar el patron EntityManager por metodo.  
 *
 */
public class JPACancionDAO implements CancionDAO {
	private static final Log log = LogFactory.getLog(JPACancionDAO.class);
		
	/**
	 * Constructor empleado cuando no se quiere reutilizar el EntityManager
	 * proporcionado por la capa de dominio. 
	 */
	public JPACancionDAO(){
	}
	
	
	
	@Override
	public void crear(Cancion entidad) {
		EntityManager em=EntityManagerFactorySingleton.getInstance().getEntityManagerFactory().createEntityManager();
		em.getTransaction().begin();
		em.persist(entidad);
		em.flush();
		em.getTransaction().commit();
		em.close();
	}

	@Override
	public void borrar(LlavePrimaria pk) {
		// TODO Auto-generated method stub

	}

	@Override
	public void salvar(Cancion entidad) {
		// TODO Auto-generated method stub

	}

	@Override
	public Cancion buscarPorPK(LlavePrimaria pk) {
		// TODO Auto-generated method stub
		return null;
	}
}
